home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d18 / infop125.arc / PAGE_15.INC < prev    next >
Text File  |  1991-04-28  |  4KB  |  168 lines

  1. procedure page_15;
  2.  
  3. var
  4.   i : byte;
  5.   j : 0..3;
  6.   k : byte;
  7.   part : array[0..secsiz + 3] of byte;
  8.   xbool1 : boolean;
  9.   xbool2 : boolean;
  10.   xbool3 : boolean;
  11.   xbool4 : boolean;
  12.   xbyte : byte;
  13.   xlong : longint;
  14.   xword : word;
  15.  
  16.   begin
  17.   caption2('Partition table data');
  18.   i:=$80;
  19.   xbool1:=false;
  20.   xbool2:=false;
  21.   repeat
  22.     with regs do
  23.       begin
  24.       AX:=$0201;
  25.       CX:=$0001;
  26.       DX:=i;
  27.       ES:=seg(part);
  28.       BX:=ofs(part);
  29.       intr($13, regs);
  30.       if nocarry then
  31.         begin
  32.         xbool1:=true;
  33.         xbool2:=true
  34.         end
  35.       else
  36.         if i < $99 then
  37.           inc(i)
  38.         else
  39.           xbool1:=true
  40.       end
  41.   until xbool1;
  42.   if xbool2 then
  43.     begin
  44.     writeln;
  45.     caption3('Unit');
  46.     writeln;
  47.     caption3('Partition');
  48.     writeln;
  49.     caption3('Bootable');
  50.     writeln;
  51.     caption3('Starting head');
  52.     writeln;
  53.     caption3('Starting sector');
  54.     writeln;
  55.     caption3('Starting cylinder');
  56.     writeln;
  57.     caption3('System ID');
  58.     writeln;
  59.     caption3('Ending head');
  60.     writeln;
  61.     caption3('Ending sector');
  62.     writeln;
  63.     caption3('Ending cylinder');
  64.     writeln;
  65.     caption3('First partition sector');
  66.     writeln;
  67.     caption3('Sectors in partition');
  68.     writeln;
  69.     xbool3:=false;
  70.     repeat
  71.       window(9, 4, twidth, tlength - 2);
  72.       writeln(i);
  73.       window(27, 5, twidth, tlength - 2);
  74.       clrscr;
  75.       for j:=0 to 3 do
  76.         begin
  77.         window(27 + 12 * j, 5, 38 + 12 * j, tlength - 2);
  78.         writeln(j + 1);
  79.         xword:=$01BE + j shl 4;
  80.         xbyte:=part[xword];
  81.         case xbyte of
  82.           $00 : writeln('no');
  83.           $80 : writeln('yes')
  84.         else
  85.             writeln('(', hex(xbyte, 2), ')')
  86.         end;
  87.         xbyte:=part[xword + 4];
  88.         if xbyte > $00 then
  89.           begin
  90.           writeln(part[xword + 1]);
  91.           writeln(part[xword + 2] and $3F);
  92.           writeln(part[xword + 3] +
  93.             word(part[xword + 2] shr 6 * 256));
  94.           case xbyte of
  95.             $01 : writeln('DOS-12');
  96.             $02,$03 : Writeln('XENIX');
  97.             $04 : writeln('DOS-16');
  98.             $05 : writeln('Ext DOS-16');
  99.             $06 : Writeln('Big DOS-16');
  100.             $07 : Writeln('QNX');
  101.             $08 : Writeln('Split');
  102.             $09 : Writeln('AIX data');
  103.             $51 : Writeln('Dsk Managr');
  104.             $56 : Writeln('GB');
  105.             $61 : Writeln('Speedstor');
  106.             $63 : Writeln('SysV/386');
  107.             $64 : Writeln('NOVELL');
  108.             $75 : Writeln('PC/IX');
  109.             $80 : Writeln('Minix v1.3-');
  110.             $81 : Writeln('Minix v1.5+');
  111.             $DB : Writeln('CP/M');
  112.             $E1 : Writeln('SpdStr-12');
  113.             $E4 : Writeln('SpdStr-16');
  114.             $FF : Writeln('BBT')
  115.             else
  116.               writeln('(', hex(xbyte, 2), ')')
  117.           end;
  118.           writeln(part[xword + 5]);
  119.           xbyte:=part[xword + 6];
  120.           writeln(xbyte and $3F);
  121.           writeln(cbw(part[xword + 7], xbyte shr 6));
  122.           xlong:=0;
  123.           for k:=11 downto 8 do
  124.             xlong:=xlong shl 8 + part[xword + k];
  125.           writeln(xlong);
  126.           xlong:=0;
  127.           for k:=15 downto 12 do
  128.             xlong:=xlong shl 8 + part[xword + k];
  129.           writeln(xlong)
  130.         end
  131.       else
  132.          for k:=1 to 9 do
  133.            writeln('-')
  134.       end;
  135.       xbool4:=false;
  136.       repeat
  137.         if i < $99 then
  138.           begin
  139.           inc(i);
  140.           with regs do
  141.             begin
  142.             AX:=$0201;
  143.             CX:=$0001;
  144.             DX:=i;
  145.             ES:=seg(part);
  146.             BX:=ofs(part);
  147.             intr($13, regs);
  148.             if nocarry then
  149.               begin
  150.               xbool4:=true;
  151.               pause1;
  152.               if endit then
  153.                 Exit;
  154.               end
  155.             end
  156.           end
  157.         else
  158.           begin
  159.           xbool3:=true;
  160.           xbool4:=true
  161.           end
  162.       until xbool4
  163.     until xbool3
  164.     end
  165.   else
  166.     writeln('(no fixed disks)')
  167.   end;
  168.